#-* coding:UTF8 *-

'''
1. 自动更新SVN程序
2. 自动压缩JS与CSS， 图片暂未支持
3. 需要计划任务支持, 压缩工具是支持google 与 yahoo的压缩工具所以需要服务器环境支持JAVA
4. 5173前端开发-马克 sim_cn@qq.com
5. 第二版本增加 d压缩功能
'''

import os,sys,re,ConfigParser
from time import strftime, localtime

#判断参数
if sys.argv[1]:
    _inifile = sys.argv[1]
else:
    _inifile = 'auto'
    
#取到当前目录
def runpath():
    path = sys.path[0]
    if os.path.isdir(path):
        return path
    elif os.path.isfile(path):
        return os.path.dirname(path)
        
def wdreleased():
        
    # 读取配置信息
    ini = ConfigParser.ConfigParser()
    ini.readfp(open('config.ini'))
    localSVN = ini.get('ini','localSVN')
    onlineSVN = ini.get('ini','onlineSVN')
    svnCLI = ini.get('ini','svnCLI')    
 
    #更新线上SVN库
    os.chdir(onlineSVN)
    os.popen(svnCLI + 'svn.exe update','r').read();
    #更新线下SVN库
    os.chdir(localSVN)
    text = os.popen(svnCLI + 'svn.exe update','r').read();
    #返回应用程序目录
    os.chdir(runpath())
    
    #生成日志文件
    fp=open('fileList.txt','w+') 
    fp.write(text) 
    fp.close()
    ##读取生成的日志
    fp = open('fileList.txt')
    d = fp.read()
    fp.close()
    
    '''
    item = re.findall('[AU]\s{4}(.*)',text)
    for item in item :
        formFile = localSVN  + item
        toFile   = onlineSVN + item
        tmpFile  = formFile.replace('.css','.min.css')
        tmpFile  = tmpFile.replace('.js','.min.js')
        tmpFile  = tmpFile.replace('.png','.min.png')
        if os.path.isfile(formFile):
            if formFile.endswith('.css'):
                info = os.system('java -jar yui.jar --type css '+ formFile +' -o '+ tmpFile +' --charset utf-8')
            if formFile.endswith('.js'):
                info = os.system('java -jar compiler.jar --compilation_level SIMPLE_OPTIMIZATIONS --js '+ formFile +' --js_output_file '+ tmpFile)
            if formFile.endswith('.css') or formFile.endswith('.js'):
                if os.path.getsize(tmpFile)==0 :
                    wlog( formFile + ' ERROR')
                else :
                    wlog( formFile + ' OK')            
                newDir = re.findall('.*\\\\',toFile)
                if not os.path.isdir(newDir[0]):
                    os.makedirs(newDir[0],0777)
                fp    = open(tmpFile)
                new_c = '/* ' + strftime("%Y-%m-%d %H:%M:%S",localtime()) + ' by 5173 wd */\n' + fp.read()
                fp.close()
                os.remove(tmpFile)
                fp=open(toFile,'w+') 
                fp.write(new_c) 
                fp.close()
    '''

 
#text = os.popen(svnpath + 'svn.exe checkout '+server+' '+local,'r').read();
#print text
os.chdir(local)
text = os.popen(svnpath + 'svn.exe update','r').read();
print text

#写入日志
strLogfileName = logpath+'/'+_inifile+'/'+strftime("%Y-%m-%d.txt",localtime())
dt = strftime("%Y-%m-%d %H:%M:%S",localtime())
fp=open(strLogfileName,'a') 
fp.write(dt+'\r\n') 
fp.write(text) 
fp.write('------------------------------------->>>-----------u-e-d------'+'\r\n')  
fp.close()